<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="created" content="2018-10-23T06:18:10.521000000">
   <meta name="changed" content="2021-07-18T10:59:00.000000000">
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta http-equiv="Content-Language" content="en">
    <title>
      Transistor
    </title>
    <link rel="stylesheet" type="text/css" href="../../style.css">
  </head>
  <body>
    <div class="maindiv">
      <h1>
        <img class="iconlibs" src="../../../../icons/6464/trans0.png" alt="#########" width="32" height="32"> 
		<img class="iconlibs" src="../../../../icons/6464/trans1.png" alt="#########" width="32" height="32"> 
		<em>Transistor</em>
      </h1>
      <table>
        <tbody>
          <tr>
            <td>
              <strong>Library:</strong>
            </td>
            <td>
              <a href="index.html">Wiring</a>
            </td>
          </tr>
          <tr>
            <td>
              <strong>Introduced:</strong>
            </td>
            <td>
              2.7.0
            </td>
          </tr>
          <tr>
            <td valign="top">
              <strong>Appearance:</strong>
            </td>
            <td valign="top">
              <table>
                <tbody>
				  <tr>
				    <th>P-type
					</th>
					<th>
					</th>
					<th>N-type
					</th>
				  </tr>
                  <tr>
                    <td>
                      <img class="appearancelibs" src="../../../../img-libs/trans0.png" alt="#########" width="64" height="64">
                    </td>
					<td>&nbsp;
					</td>
                    <td>
                      <img class="appearancelibs" src="../../../../img-libs/trans1.png" alt="#########" width="64" height="64">
                    </td>
                  </tr>
                </tbody>
              </table>
            </td>
          </tr>
        </tbody>
      </table>
      <h2>
        Behavior
      </h2>
      <p>
        A transistor has two inputs, called <b>gate</b> and <b>source</b>, and one output, called <b>drain</b>. When diagrammed, the <b>source</b> input and <b>drain</b> output are drawn connected by a plate; Logisim draws an arrowhead to indicate the direction of flow from input to output. The <b>gate</b> input is drawn connected to a plate that is parallel to the plate connecting <b>source</b> to <b>drain</b>.</p>
		     <center>
        <table>
          <tbody>
            <tr>
              <td></td>
              <td align="center">
                <em>gate</em>
              </td>
              <td></td>
              <td>
                &nbsp; &nbsp;
              </td>
              <td></td>
              <td align="center">
                <em>gate</em>
              </td>
              <td></td>
            </tr>
            <tr>
              <td valign="bottom">
                <em>source</em>
              </td>
              <td valign="middle" align="center">
                <img src="../../../../img-libs/trans1.png" alt="#########">
              </td>
              <td valign="bottom">
                <em>drain</em>
              </td>
              <td></td>
              <td valign="bottom">
                <em>source</em>
              </td>
              <td valign="middle" align="center">
                <img src="../../../../img-libs/trans0.png" alt="#########">
              </td>
              <td valign="bottom">
                <em>drain</em>
              </td>
            </tr>
            <tr>
              <td></td>
              <td align="center">
                <b>N-Type</b>
              </td>
              <td></td>
              <td></td>
              <td></td>
              <td align="center">
                <b>P-Type</b>
              </td>
              <td></td>
            </tr>
          </tbody>
        </table>
		</center>

<p>	Logisim supports two types of transistors, with slightly different behaviors described below; the P-type transistor is indicated by a circle connecting the <b>gate</b> input to its plate, while the N-type transistor has no such circle.
      </p>
      <p>
        Depending on the value found at <b>gate</b>, the value at <b>source</b> may be transmitted to <b>drain</b>; or there may be no connection from <b>source</b>, so <b>drain</b> is left floating. The determination of transmitting or disconnecting depends on the type of transistor: A P-type transistor (indicated by a circle on the <b>gate</b> line) transmits when <b>gate</b> is 0, while an N-type transistor (which has no such circle) transmits when <b>gate</b> is 1. The behavior is summarized by the following tables.
      </p>
	  <center>
      <table class="encapsul">
        <tbody>
		  <tr>
		   <th colspan=3>
		     P-type
		   </th>
		   <td>
		   </td>
		   <th colspan=3>
		     N-Type
		   </th>
		  </tr>
		  <tr>
		   <td>
		   </td>
		   <td class="center">
		   G
		   </td>
		   <td>
		   </td>
		    <td>	
			
		   </td>
		   <td>
		   
		   </td>
		   <td class="center">
		   G
		   </td>
		   <td>
		   
		   </td>
		  </tr>
		  <tr>
		   <td class="right">
		     S
		   </td>
		   <td>
		   <p align="center">
		      <img class="appearancelibs" src="../../../../img-libs/trans0.png" alt="#########" width="64" height="64">
		   </p>
		   </td>
		    <td class="left">
		     D
		   </td>
		   <td>
		   </td>
		    <td class="right">
		     S
		   </td>
		   <td>
		   <p align="center">
		      <img class="appearancelibs" src="../../../../img-libs/trans1.png" alt="#########" width="64" height="64">
		   </p>
		   </td>
		    <td class="left">
		     D
		   </td>
		  </tr>
          <tr>
            <td colspan=3>
              <table class="truthtable">
                <tbody>
                  <tr>
                    <th></th>
                    <th colspan="5">
                      Gate
                    </th>
                  </tr>
                  <tr>
                    <th rowspan="6">
                      Source
                    </th>
                  </tr>
                  <tr>
                    <td class="tzerov">
					</td>
                    <td class="tzerov">
                      0
                    </td>
                    <td class="tunov">
                      1
                    </td>
                    <td class="tuvalue">
                      U
                    </td>
                    <td class="tevalue">
                      E
                    </td>
                  </tr>
                  <tr>
                    <td class="tzerov">
                      0
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="evalue">
                      E
                    </td>
                    <td class="evalue">
                      E
                    </td>
                  </tr>
                  <tr>
                    <td class="tunov">
                      1
                    </td>
                    <td class="unov">
                      1
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="evalue">
                      E
                    </td>
                    <td class="evalue">
                      E
                    </td>
                  </tr>
                  <tr>
                    <td class="tuvalue">
                      U
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                  </tr>
                  <tr>
                    <td class="tevalue">
                      E
                    </td>
                    <td class="evalue">
                      E
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="evalue">
                      E
                    </td>
                    <td class="evalue">
                      E
                    </td>
                  </tr>
                </tbody>
              </table>
            </td>
			<td>
			  &nbsp;&nbsp;&nbsp;&nbsp;
			</d>
            <td  colspan=3>
              <table class="truthtable">
                <tbody>
                  <tr>
                    <th></th>
                    <th colspan="5">
                      Gate
                    </th>
                  </tr>
                  <tr>
                    <th rowspan="6">
                      Source
                    </th>
                  </tr>
                  <tr>
                    <td class="tzerov">
					</td>
                    <td class="tzerov">
                      0
                    </td>
                    <td class="tunov">
                      1
                    </td>
                    <td class="tuvalue">
                      U
                    </td>
                    <td class="tevalue">
                      E
                    </td>
                  </tr>
                  <tr>
                    <td class="tzerov">
                      0
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="zerov">
                      0
                    </td>
                    <td class="evalue">
                      E
                    </td>
                    <td class="evalue">
                      E
                    </td>
                  </tr>
                  <tr>
                    <td class="tunov">
                      1
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="evalue">
                      E
                    </td>
                    <td class="evalue">
                      E
                    </td>
                  </tr>
                  <tr>
                    <td class="tuvalue">
                      U
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                  </tr>
                  <tr>
                    <td class="tevalue">
                      E
                    </td>
                    <td class="uvalue">
                      U
                    </td>
                    <td class="evalue">
                      E
                    </td>
                    <td class="evalue">
                      E
                    </td>
                    <td class="evalue">
                      E
                    </td>
                  </tr>
                </tbody>
              </table>
            </td>
          </tr>
        </tbody>
      </table>
	  </center>
      <p>
        Or in summarized form:
      </p>
      <center>
        <table class="encapsul">
          <tbody>
            <tr>
              <td>
                <table>
                  <thead>
                    <tr>
                      <th colspan="2">
                        P-type
                      </th>
                    </tr>
                    <tr>
                      <td colspan="2">
					  <p align="center">
                        <img class="appearancelibs" src="../../../../img-libs/trans0.png" alt="#########" width="64" height="64">
                      </p>
					  </td>
                    </tr>
                  </thead>
                  <tbody>
                    <tr>
                      <th class="tspace">
					    Gate
                      </th>
                      <th class="tspace">
                        Drain
                      </th>
                    </tr>
                    <tr>
                      <td class="zerov">
                        0
                      </td>
                      <td class="space">
                        Source
                      </td>
                    </tr>
                    <tr>
                      <td class="unov">
                        1
                      </td>
                      <td class="uvalue">
                        U
                      </td>
                    </tr>
                    <tr>
                      <td class="space">
                        <b class="uvalue">U</b>/<b class="evalue">E</b>
                      </td>
                      <td class="space">
                        *
                      </td>
                    </tr>
                  </tbody>
                </table>
              </td>
              <td width="60px">
               
              </td>
              <td>
                <table>
                  <thead>
                    <tr>
                      <th colspan="2">
                        <b>N-type</b>
                      </th>
                    </tr>
                    <tr>
                      <td colspan="2">
					  <p align="center">
                        <img class="appearancelibs" src="../../../../img-libs/trans1.png" alt="#########" width="64" height="64">
                      </p>
					  </td>
                    </tr>
                  </thead>
                  <tbody>
                    <tr>
                      <th class="tspace">
                        Gate
                      </th>
                      <th class="tspace">
                        Drain
                      </th>
                    </tr>
                    <tr>
                      <td class="zerov">
                        0
                      </td>
                      <td class="uvalue">
                        U
                      </td>
                    </tr>
                    <tr>
                      <td class="unov">
                        1
                      </td>
                      <td align="center">
                        Source
                      </td>
                    </tr>
                    <tr>
                      <td class="space">
                        <b class="uvalue">U</b>/<b class="evalue">E</b>
                      </td>
                      <td class="space">
                        *
                      </td>
                    </tr>
                  </tbody>
                </table>
              </td>
            </tr>
          </tbody>
        </table>
        <p>
          * If source is <b class="uvalue">U</b>, drain is <b class="uvalue">U</b>; otherwise drain is <b class="evalue">E</b>.
        </p>
      </center>
	 <p>
        <b class=note>Note:</b>Since Logisim uses the markers <b class="uvalue">U</b> (high impedance / undefined) and <b class="evalue">E</b> (Error) I have used the same in the illustrations rather than the more common Z (high impedance) and X (Error) in other documents</p>
      <p>
        If the <b class="propertie">Data Bits</b> attribute is more than 1, the <b>gate</b> input is still a single bit, but its value is applied simultaneously to each of the <b>source</b> input's bits.
      </p>
      <p>
        An N-type transistor behaves very similarly to a <a href="../gates/controlled.html">Controlled Buffer</a>. The primary difference is that a transistor is meant for more basic circuit designs.
      </p>
      <h2>
        Pins (assuming component faces east, gate line top/left)
      </h2>
      <dl>
        <dt>
          West edge (input, bit width matches Data Bits attribute)
        </dt>
        <dd>
          The component's <b>source</b> input that will transmit to the output if triggered by the <b>gate</b> input.
        </dd>
        <dt>
          North edge (input, bit width 1)
        </dt>
        <dd>
          The component's <b>gate</b> input. For P-type transistors, the transistor will transmit if the <b>gate</b> value is <b class="zerov">0</b>; for N-type transistors, this will trigger the transistor if the <b>gate</b> value is <b class="unov">1</b>.
        </dd>
        <dt>
          East edge (output, bit width matches Data Bits attribute)
        </dt>
        <dd>
          The component's output, which will match the <b>source</b> input if indicated by the <b>gate</b> input, or will be floating if the <b>gate</b> input is the negation of what indicates negation. If <b>gate</b> is floating (<b class="uvalue">U</b>) or an error error value (<b class="evalue">E</b>) value, then the output will be an error value (<b class="evalue">E</b>).
        </dd>
      </dl>
      <h2>
        Attributes
      </h2>
      <p>
       When the component is selected or being added, <b class="tkeybd">Alt-0</b> through <b class="tkeybd">Alt-9</b> alter its <b class="propertie">Data Bits</b> attribute and the arrow keys alter its <b class="propertie">Facing</b> attribute.
      </p>
	  <div class="attliste">
      <dl>
        <dt>
          <b class="propertie">Type</b>
        </dt>
        <dd>
          Determines whether the transistor is P-type or N-type.
        </dd>
        <dt>
          <b class="propertie">Facing</b>
        </dt>
        <dd>
          The direction of the component (its output relative to its input).
        </dd>
        <dt>
          <b class="propertie">Gate Location</b>
        </dt>
        <dd>
          The location of the gate input.
        </dd>
        <dt>
          <b class="propertie">Data Bits</b>
        </dt>
        <dd>
          The bit width of the component's inputs and outputs.
        </dd>
      </dl>
	  </div>
      <h2>
        Poke Tool Behavior
      </h2>
      <p>
        None.
      </p>
      <h2>
        Text Tool Behavior
      </h2>
      <p>
        None.
      </p>
      <p>
        <b>Back to</b> <a href="../index.html">Library Reference</a>
      </p>
    </div>
  </body>
</html>
